package net.servir.capacidades.web.controller;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import net.servir.capacidades.model.Ambito;
import net.servir.capacidades.model.BancoPregunta;
import net.servir.capacidades.model.PreguntaServicio;
import net.servir.capacidades.model.PreguntaTipo;
import net.servir.capacidades.model.PuestoTipo;
import net.servir.capacidades.model.Sistema;
import net.servir.capacidades.model.Usuario;
import net.servir.capacidades.model.jsp.JspBancoPreguntaEdicion;
import net.servir.capacidades.service.BancoPreguntaService;
import net.servir.capacidades.service.CapacidadesService;
import net.servir.capacidades.service.MantenimientoService;
import net.servir.capacidades.service.SistemaAdmService;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class BancoPreguntaEdicionController {

	@Autowired 
	private CapacidadesService capacidadesService;
	
	@Autowired 
	private SistemaAdmService sistemaAdmService;
	
	@Autowired 
	private MantenimientoService mantenimientoService;

	@Autowired 
	private BancoPreguntaService bancoPreguntaService;

	@RequestMapping("/bancoPreguntaEdicion.htm")
	public @ModelAttribute("banco")
	JspBancoPreguntaEdicion editarSistema(HttpServletRequest request,HttpServletResponse response) throws Exception {
		
		JspBancoPreguntaEdicion obj = new JspBancoPreguntaEdicion();
		
		//************************************************************
		// se obtiene el dni de la session activa
		//************************************************************
		
		HttpSession session = request.getSession();
		String cod_session =session.getId();

		String dniResponsable = null;
		if(session.getAttribute("dni") != null)			
			dniResponsable = session.getAttribute("dni").toString();
		
		//Obtenemos los datos del Usuario
		Usuario usuario = null;
		if(session.getAttribute("usuario") != null)			
			usuario = (Usuario)session.getAttribute("usuario");
		
		if (usuario == null)
			throw new Exception("No se ha identificado al usuario");
		
		obj.setUsuario(usuario);				
		//************************************************************

		BancoPregunta bancoPregunta = new BancoPregunta();
		
		Number idBancoPregunta = null;
		String accion = null;
		if (request.getParameter("id_banco_pregunta") != null && !request.getParameter("id_banco_pregunta").equals(""))
			idBancoPregunta = Integer.parseInt(request.getParameter("id_banco_pregunta"));
		
		if (idBancoPregunta != null)
		{
			bancoPregunta = bancoPreguntaService.getBancoPregunta(idBancoPregunta);		
		}
		String descripcion = request.getParameter("banco_pregunta");
		Number idSistema = null;
		if (request.getParameter("id_sistema") != null && !request.getParameter("id_sistema").equals(""))
			idSistema = Integer.parseInt(request.getParameter("id_sistema"));

		obj.setBanco_pregunta(bancoPregunta);
		

		List<Sistema> lstSistema = sistemaAdmService.getSistemas();
		obj.setLstSistema(lstSistema);
		
		//String codEstadoParticipante = null;
		// obtener valores del accion de usuario
		accion = request.getParameter("accion");
		String tipoEdicion = request.getParameter("tipo_edicion");
		if (tipoEdicion == null || tipoEdicion.equals(""))
		{
			if (idBancoPregunta == null)
				tipoEdicion = "NUEVO";
			else
				tipoEdicion = "MODIFICAR";
		}	
		
		obj.setTipo_edicion(tipoEdicion);
		
		String redirect = "";
		String mensajeUsuario = "";
		// set valores de los controles
		if(accion != null && !accion.equals(""))
		{
			obj.setMensaje_usuario(mensajeUsuario);
			bancoPregunta.setBanco_pregunta(descripcion);
			bancoPregunta.setId_sistema(idSistema);
			
			if(accion.equals("GRABAR"))
			{
				idBancoPregunta = bancoPreguntaService.grabarBancoPregunta(bancoPregunta);	
				bancoPregunta = bancoPreguntaService.getBancoPregunta(idBancoPregunta);
				obj.setBanco_pregunta(bancoPregunta);
				
				redirect = "bancosPregunta.htm";
			}
			 
			if (!redirect.equals(""))
				response.sendRedirect(redirect);
				
		}
		return obj;
	}
	

}
